#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

class Date
{
public:
	Date(int year=0, int month=1, int day=0, int n=0)
		:_year(year)
		, _month(month)
		, _day(day)
		, _n(n)
	{

	}

	int GetMonthDay()
	{
		int MonthDay[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
		if (_month == 2 && (((_year % 4 == 0) && (_year % 100 != 0)) || (_year % 400 == 0)))
		{
			return 29;
		}
		return MonthDay[_month];
	}

	Date& operator+=(int d)
	{
		_day += d;
		while (_day > GetMonthDay())
		{
			_day -= GetMonthDay();
			_month++;
			if (_month == 13)
			{
				_year++;
				_month = 1;
			}
		}
		return *this;
	}

	int _year;
	int _month;
	int _day;
	int _n;
};

//int main()
//{
//	int m;
//	cin >> m;
//	Date* p = new Date[m];
//	int n = 0;
//	while (n!=m)
//	{
//		cin >> p[n]._year >> p[n]._month >> p[n]._day >> p[n]._n;
//		p[n] += p[n]._n;
//		n++;
//	}
//	n = 0;
//	while (n!=m)
//	{
//		cout << p[n]._year << "-";
//		if (p[n]._month < 10)
//		{
//			cout << 0 << p[n]._month << "-" ;
//		}
//		else
//		{
//			cout << p[n]._month << "-" ;
//		}
//		if (p[n]._day < 10) {
//			cout << 0 << p[n]._day << endl;
//		}
//		else {
//			cout << p[n]._day << endl;
//		}
//		n++;
//	}
//	delete[]p;
//	return 0;
//}

//int main()
//{
//	Date d;
//	while (scanf("%d %d", &d._year, &d._n) == 2)
//	{
//		d += d._n;
//		cout << d._year << "-";
//		if (d._month < 10)
//		{
//			cout << 0 << d._month << "-";
//		}
//		else
//		{
//			cout << d._month << "-";
//		}
//		if (d._day < 10) {
//			cout << 0 << d._day << endl;
//		}
//		else {
//			cout << d._day << endl;
//		}
//		d._year = d._day = d._n = 0;
//		d._month = 1;
//	}
//	return 0;
//}

//int main()
//{
//	int* p;
//	cout << sizeof(p) << endl;
//	return 0;
//}